from PublicReference.base import *
from math import *


class 主动技能(主动技能):
    def 等效CD(self, 武器类型, 输出类型):
        return round(self.CD / self.恢复, 1)


class 职业主动技能(主动技能):
    技能施放时间 = 0.0
    脱手 = 1
    data0 = []
    data1 = []
    data2 = []
    data3 = []
    data4 = []
    data5 = []
    data6 = []
    魔化 = 1.0

    def 等效百分比(self, 武器类型):
        等效倍率 = 0.0
        if len(self.data0) >= self.等级 and len(self.data0) > 0:
            等效倍率 += self.data0[self.等级] * self.攻击次数
        if len(self.data1) >= self.等级 and len(self.data1) > 0:
            等效倍率 += self.data1[self.等级] * self.攻击次数2
        if len(self.data2) >= self.等级 and len(self.data2) > 0:
            等效倍率 += self.data2[self.等级] * self.攻击次数3
        if len(self.data3) >= self.等级 and len(self.data3) > 0:
            等效倍率 += self.data3[self.等级] * self.攻击次数4
        if len(self.data4) >= self.等级 and len(self.data4) > 0:
            等效倍率 += self.data4[self.等级] * self.攻击次数5
        if len(self.data5) >= self.等级 and len(self.data5) > 0:
            等效倍率 += self.data5[self.等级] * self.攻击次数6
        if len(self.data6) >= self.等级 and len(self.data6) > 0:
            等效倍率 += self.data6[self.等级] * self.攻击次数7
        return 等效倍率 * (1 + self.TP成长 * self.TP等级) * self.倍率 * self.魔化


class 技能0(被动技能):
    名称 = '基础精通'
    倍率 = 1.0
    所在等级 = 1
    等级上限 = 200
    基础等级 = 100
    数据 = [int(i*1.0) for i in [0, 1000, 1058, 1115, 1173, 1230, 1288, 1345, 1403, 1461, 1518, 1576, 1633, 1691, 1748, 1806, 1895, 1984, 2073, 2162, 2251, 2339, 2428, 2517, 2606, 2695, 2784, 2873, 2962, 3051, 3140, 3228, 3317, 3406, 3495, 3584, 3673, 3762, 3851, 3940, 4029, 4118, 4206, 4295, 4384, 4473, 4562, 4651, 4740, 4829, 4918, 5007, 5095, 5184, 5273, 5362, 5451, 5540, 5629, 5718, 5807, 5896, 5985, 6073, 6162, 6251, 6340, 6429, 6518, 6607, 6696, 6785, 6874, 6963, 7051, 7140, 7229, 7318, 7407, 7496, 7585, 7674, 7763, 7852, 7940, 8029, 8118, 8207, 8296, 8385, 8474, 8563, 8652, 8741, 8830, 8918, 9007, 9096, 9185, 9274, 9363, 9452, 9541, 9630, 9719, 9808, 9897, 9986,
          10075, 10164, 10253, 10342, 10431, 10520, 10609, 10698, 10787, 10876, 10965, 11054, 11143, 11232, 11321, 11410, 11499, 11588, 11677, 11766, 11855, 11944, 12033, 12122, 12211, 12300, 12389, 12478, 12567, 12656, 12745, 12834, 12923, 13012, 13101, 13190, 13279, 13368, 13457, 13546, 13635, 13724, 13813, 13902, 13991, 14080, 14169, 14258, 14347, 14436, 14525, 14614, 14703, 14792, 14881, 14970, 15059, 15148, 15237, 15326, 15415, 15504, 15593, 15682, 15771, 15860, 15949, 16038, 16127, 16216, 16305, 16394, 16483, 16572, 16661, 16750, 16839, 16928, 17017, 17106, 17195, 17284, 17373, 17462, 17551, 17640, 17729, 17818, 17907, 17996, 18085, 18174, 18263]]
    关联技能 = ['普通攻击', '空斩打']

    def 加成倍率(self, 武器类型):
        return self.数据[self.等级] / 1000


class 技能1(主动技能):
    名称 = '普通攻击'
    备注 = '(一轮，TP为基础精通)'
    所在等级 = 1
    等级上限 = 1
    基础等级 = 1
    基础 = 224.69
    成长 = 0
    基础2 = 142.11
    成长2 = 0
    倍率 = 1.059
    CD = 2.0
    TP成长 = 0.10
    TP上限 = 3


class 技能2(职业主动技能):
    名称 = '空斩打'
    所在等级 = 1
    等级上限 = 20
    基础等级 = 10
    data0 = [int(i*1.0) for i in [0, 95, 105, 115, 126, 136, 147, 158, 168, 179, 189, 200, 210, 220, 231, 241, 252, 263, 273, 284, 294, 305, 315,
             325, 336, 346, 357, 368, 378, 389, 399, 410, 420, 430, 441, 451, 462, 473, 483, 494, 504, 515, 525, 535, 546, 556,
             567, 578, 588, 599, 609, 620, 630, 640, 651, 661, 672, 683, 693, 704, 714, 725, 735, 745, 756, 766, 777, 788, 798,
             809, 819]]
    CD = 2
    TP成长 = 0.08
    TP上限 = 5


class 技能3(职业主动技能):
    名称 = '落凤锤'
    所在等级 = 15
    等级上限 = 60
    基础等级 = 46
    data0 = [int(i*1.212) for i in [0, 372, 409, 449, 485, 523, 560, 599, 637, 675, 712, 749, 788, 826, 862, 901, 938, 976, 1016, 1052, 1089, 1127, 1165, 1203, 1241, 1279, 1315, 1355, 1392, 1431, 1468, 1505, 1544, 1582, 1618, 1658, 1697,
             1733, 1771, 1808, 1846, 1885, 1921, 1961, 1997, 2036, 2075, 2111, 2149, 2187, 2224, 2263, 2300, 2339, 2375, 2414, 2452, 2489, 2527, 2565, 2602, 2641, 2678, 2715, 2753, 2791, 2828, 2867, 2904, 2944, 2980]]
    data1 = [int(i*1.212) for i in [0, 1489, 1641, 1792, 1944, 2095, 2246, 2397, 2549, 2700, 2851, 3002, 3153, 3304, 3456, 3607, 3758, 3910, 4061, 4212, 4364, 4514, 4667, 4817, 4969, 5119, 5269, 5422, 5572, 5725, 5875, 6026, 6178, 6329, 6481, 6632,
             6783, 6935, 7085, 7237, 7387, 7539, 7690, 7842, 7992, 8144, 8295, 8447, 8598, 8750, 8901, 9051, 9202, 9354, 9504, 9657, 9807, 9958, 10110, 10260, 10413, 10564, 10716, 10867, 11018, 11169, 11319, 11472, 11622, 11775, 11925]]
    攻击次数2 = 1
    倍率 = 1.2  # 转职
    CD = 6
    TP成长 = 0.08
    TP上限 = 5


class 技能4(职业主动技能):
    名称 = '疾风打'
    所在等级 = 15
    等级上限 = 60
    基础等级 = 46

    data0 = [int(i*1.224) for i in [0, 259, 287, 312, 339, 365, 391, 419, 446, 471, 498, 525, 551, 577, 604, 629, 657, 683, 710, 735, 763, 790, 815, 842, 868, 894, 921, 948, 973, 1000, 1028, 1053, 1080, 1107, 1132, 1160, 1186,
             1213, 1237, 1264, 1292, 1317, 1343, 1372, 1397, 1423, 1450, 1476, 1502, 1529, 1555, 1581, 1608, 1636, 1661, 1688, 1715, 1740, 1768, 1794, 1820, 1846, 1873, 1898, 1926, 1952, 1978, 2005, 2032, 2059, 2085]]
    data1 = [int(i*1.224) for i in [0, 1476, 1626, 1777, 1926, 2076, 2227, 2377, 2526, 2674, 2824, 2975, 3125, 3275, 3423, 3574, 3724, 3873, 4023, 4173, 4324, 4474, 4623, 4773, 4924, 5073, 5223, 5372, 5522, 5673, 5823, 5971, 6121, 6272, 6422, 6572,
             6720, 6870, 7021, 7171, 7321, 7470, 7621, 7771, 7921, 8070, 8218, 8369, 8519, 8669, 8819, 8970, 9119, 9267, 9418, 9568, 9718, 9869, 10018, 10168, 10319, 10469, 10617, 10766, 10916, 11067, 11217, 11367, 11515, 11667, 11815]]
    攻击次数2 = 1

    CD = 4.5
    TP成长 = 0.10
    TP上限 = 5


class 技能5(职业主动技能):
    名称 = '破魔符'
    所在等级 = 15
    等级上限 = 60
    基础等级 = 46
    data0 = [int(x*1.224) for x in [0, 181, 200, 218, 236, 255, 272, 292, 310, 327, 348, 365, 383, 402, 420, 439, 457, 475, 494, 511, 532, 549, 567, 585, 604, 622, 641, 659, 677, 697, 715, 732, 752, 769, 788, 807,
                                  825, 844, 862, 881, 899, 917, 936, 953, 974, 991, 1009, 1027, 1046, 1064, 1083, 1101, 1119, 1137, 1157, 1174, 1193, 1212, 1230, 1248, 1266, 1286, 1304, 1322, 1341, 1358, 1378, 1396, 1413, 1434, 1451]]
    攻击次数 = 6
    CD = 2
    TP成长 = 0.10
    TP上限 = 5


class 技能6(被动技能):
    名称 = '潜龙'
    所在等级 = 15
    等级上限 = 11
    基础等级 = 1
    普通攻击 = [int(i*1.0) for i in [0, 60, 64, 68, 72, 76, 80, 84, 88, 92, 96, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 144, 148, 152,
            156, 160, 164, 168, 172, 176, 180, 184, 188, 192, 196, 200, 204, 208, 212, 216, 220, 224, 228, 232, 236, 240, 244,
            248, 252, 256, 260, 264, 268, 272, 276, 280, 284, 288, 292, 296, 300, 304, 308, 312, 316, 320, 324, 328, 332, 336]]
    普通攻击冲击波 = [int(i*1.0) for i in [0, 200, 210, 220, 230, 240, 250, 260, 270, 280, 290, 300, 310, 320, 330, 340, 350, 360, 370, 380, 390, 400, 410,
               420, 430, 440, 450, 460, 470, 480, 490, 500, 510, 520, 530, 540, 550, 560, 570, 580, 590, 600, 610, 620, 630, 640,
               650, 660, 670, 680, 690, 700, 710, 720, 730, 740, 750, 760, 770, 780, 790, 800, 810, 820, 830, 840, 850, 860, 870,
               880, 890]]
    巨旋风近身 = [int(i*1.0) for i in [0, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79,
             81, 83, 85, 87, 89, 91, 93, 95, 97, 99, 101, 103, 105, 107, 109, 111, 113, 115, 117, 119, 121, 123, 125, 127, 129,
             131, 133, 135, 137, 139, 141, 143, 145, 147, 149, 151, 153, 155, 157, 159, 161, 163]]
    巨旋风远程 = [int(i*1.0) for i in [0, 40, 44, 48, 52, 56, 60, 64, 68, 72, 76, 80, 84, 88, 92, 96, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136,
             140, 144, 148, 152, 156, 160, 164, 168, 172, 176, 180, 184, 188, 192, 196, 200, 204, 208, 212, 216, 220, 224, 228,
             232, 236, 240, 244, 248, 252, 256, 260, 264, 268, 272, 276, 280, 284, 288, 292, 296, 300, 304, 308, 312, 316]]
    巨旋风时间 = [int(i*1.0) for i in [0, 1300, 1350, 1400, 1450, 1500, 1550, 1600, 1650, 1700, 1750, 1800, 1850, 1900, 1950, 2000, 2050, 2100, 2150,
             2200, 2250, 2300, 2350, 2400, 2450, 2500, 2550, 2600, 2650, 2700, 2750, 2800, 2850, 2900, 2950, 3000, 3050, 3100,
             3150, 3200, 3250, 3300, 3350, 3400, 3450, 3500, 3550, 3600, 3650, 3700, 3750, 3800, 3850, 3900, 3950, 4000, 4050,
             4100, 4150, 4200, 4250, 4300, 4350, 4400, 4450, 4500, 4550, 4600, 4650, 4700, 4750]]
    空斩打 = [int(i*1.0) for i in [0, 40, 42, 45, 47, 50, 52, 55, 57, 60, 62, 65, 67, 70, 72, 75, 77, 80, 82, 85, 87, 90, 92, 95, 97, 100, 102, 105,
           107, 110, 112, 115, 117, 120, 122, 125, 127, 130, 132, 135, 137, 140, 142, 145, 147, 150, 152, 155, 157, 160, 162,
           165, 167, 170, 172, 175, 177, 180, 182, 185, 187, 190, 192, 195, 197, 200, 202, 205, 207, 210, 212]]
    空斩打剑气 = [int(i*1.0) for i in [0, 100, 104, 110, 114, 120, 124, 130, 134, 140, 144, 150, 154, 160, 164, 170, 174, 180, 184, 190, 194, 200, 204, 210, 214, 220, 224, 230, 234, 240, 244, 250, 254, 260, 264,
             270, 274, 280, 284, 290, 294, 300, 304, 310, 314, 320, 324, 330, 334, 340, 344, 350, 354, 360, 364, 370, 374, 380, 384, 390, 394, 400, 404, 410, 414, 420, 424, 430, 434, 440, 444]]
    无双击 = [int(i*1.0) for i in [0, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99, 102, 105, 108,
           111, 114, 117, 120, 123, 126, 129, 132, 135, 138, 141, 144, 147, 150, 153, 156, 159, 162, 165, 168, 171, 174, 177,
           180, 183, 186, 189, 192, 195, 198, 201, 204, 207, 210, 213, 216, 219, 222, 225, 228, 231, 234, 237]]
    关联技能 = ['空斩打']
    关联技能2 = ['断空捶击', '无双击']
    自定义描述 = 1

    def 技能描述(self, 武器类型):
        temp = '普通攻击的最后一击攻击力增加率:%.1f%%' % (self.普通攻击[self.等级]) + '<br>'
        temp += '普通攻击的最后一击冲击波攻击力:%.1f%%' % (self.普通攻击冲击波[self.等级]) + '<br>'
        temp += '[空斩打]攻击力增加率:%.1f%%' % (self.空斩打[self.等级]) + '<br>'
        temp += '[空斩打]剑气攻击力:%.1f%%' % (self.空斩打剑气[self.等级]) + '<br>'
        temp += '[空斩打]冲击波攻击力:%.1f%%' % (self.空斩打剑气[self.等级]) + '<br>'
        temp += '[断空捶击]攻击力增加率:%.1f%%' % (self.无双击[self.等级]) + '<br>'
        temp += '[巨旋风]近身攻击力增加率:%.1f%%' % (self.巨旋风近身[self.等级]) + '<br>'
        temp += '[巨旋风]远程攻击力增加率:%.1f%%' % (self.巨旋风远程[self.等级]) + '<br>'
        temp += '[巨旋风]存在时间增加量:%.1f' % (self.巨旋风时间[self.等级]/1000) + '秒<br>'
        temp += '[疾空旋风破]回旋次数增加量:2次<br>'
        temp += '[无双击]攻击力增加率:%.1f%%' % (self.无双击[self.等级])
        return temp

    def 加成倍率(self, 武器类型):
        return 1 + (self.空斩打[self.等级]/100)

    def 加成倍率2(self, 武器类型):
        return 1 + (self.无双击[self.等级]/100)


class 技能7(被动技能):
    名称 = '巨兵精通'
    所在等级 = 20
    等级上限 = 40
    基础等级 = 20
    冷却关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.1 + 0.01 * self.等级, 5)

    def 物理攻击力倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.1 + 0.01 * self.等级, 5)

    def 魔法攻击力倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.1 + 0.01 * self.等级, 5)

    def CD缩减倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return 0.9


class 技能8(职业主动技能):
    名称 = '断空捶击'
    所在等级 = 20
    等级上限 = 60
    基础等级 = 43
    data0 = [int(i*1.224) for i in [0, 78, 87, 94, 103, 109, 118, 126, 135, 142, 151, 159, 166, 175, 181, 190, 199, 207, 214, 223, 230, 239, 246, 255, 261, 272, 279, 287, 295, 302, 311, 318, 327, 334, 343,
             350, 360, 366, 375, 382, 391, 398, 406, 415, 424, 432, 440, 447, 454, 463, 470, 479, 486, 496, 503, 512, 520, 527, 535, 542, 551, 558, 568, 576, 584, 591, 600, 606, 615, 622, 631]]
    data1 = [int(i*1.224) for i in [0, 710, 782, 855, 928, 999, 1071, 1144, 1216, 1288, 1359, 1431, 1505, 1577, 1649, 1720, 1793, 1865, 1937, 2009, 2082, 2154, 2226, 2298, 2370, 2442, 2513, 2585, 2657, 2728, 2801, 2874, 2946, 3018, 3089, 3162,
             3234, 3307, 3379, 3451, 3523, 3595, 3667, 3739, 3812, 3884, 3956, 4028, 4101, 4172, 4244, 4316, 4389, 4462, 4533, 4605, 4677, 4750, 4822, 4893, 4966, 5038, 5111, 5183, 5254, 5326, 5399, 5472, 5544, 5615, 5687]]
    攻击次数2 = 1
    data2 = [int(i*1.224) for i in [0, 789, 869, 949, 1029, 1111, 1190, 1270, 1351, 1430, 1510, 1591, 1670, 1750, 1831, 1911, 1991, 2073, 2151, 2231, 2313, 2391, 2472, 2553, 2632, 2713, 2794, 2874, 2953, 3034, 3114, 3193, 3274, 3354, 3433,
             3514, 3595, 3675, 3755, 3835, 3915, 3995, 4075, 4155, 4235, 4315, 4396, 4478, 4556, 4636, 4718, 4797, 4877, 4958, 5037, 5117, 5199, 5278, 5358, 5439, 5518, 5598, 5679, 5758, 5838, 5918, 5998, 6079, 6160, 6240, 6319]]
    攻击次数3 = 1
    CD = 4.5
    TP成长 = 0.10
    TP上限 = 5


class 技能9(职业主动技能):
    名称 = '升天阵'
    所在等级 = 20
    等级上限 = 60
    基础等级 = 43
    data0 = [int(i*1.218) for i in [0, 1718, 1891, 2065, 2240, 2413, 2588, 2762, 2938, 3112, 3285, 3459, 3634, 3809, 3983, 4155, 4332, 4505, 4679, 4853, 5029, 5202, 5376, 5552, 5725, 5900, 6074, 6249, 6423, 6596, 6769, 6945, 7119, 7294, 7467,
                                  7643, 7817, 7990, 8165, 8340, 8514, 8688, 8864, 9036, 9210, 9384, 9560, 9733, 9908, 10081, 10257, 10431, 10605, 10779, 10954, 11129, 11301, 11475, 11651, 11824, 11999, 12173, 12348, 12521, 12696, 12871, 13045, 13219, 13394, 13569, 13742]]
    倍率 = 1.2  # 转职
    CD = 5
    TP成长 = 0.08
    TP上限 = 5


class 技能10(职业主动技能):
    名称 = '黑暗切割'
    所在等级 = 25
    等级上限 = 60
    基础等级 = 41
    data0 = [int(i*1.224) for i in [0, 760, 840, 918, 995, 1075, 1154, 1234, 1313, 1388, 1469, 1547, 1626, 1706, 1783, 1861, 1942, 2023, 2100, 2178, 2259, 2337, 2416, 2494, 2572, 2651, 2730, 2809, 2886, 2965, 3044, 3122, 3202, 3280,
                                  3357, 3437, 3515, 3595, 3673, 3751, 3829, 3909, 3988, 4066, 4145, 4226, 4305, 4382, 4461, 4540, 4619, 4697, 4776, 4854, 4934, 5013, 5092, 5170, 5248, 5328, 5406, 5484, 5564, 5642, 5722, 5799, 5877, 5956, 6035, 6114, 6194]]
    data1 = [int(i*1.224) for i in [0, 1800, 1985, 2168, 2351, 2532, 2715, 2899, 3083, 3264, 3447, 3631, 3814, 3995, 4178, 4362, 4545, 4728, 4910, 5093, 5275, 5459, 5641, 5824, 6008, 6191, 6373, 6556, 6738, 6921, 7103, 7288, 7471, 7653, 7835, 8019,
                                  8202, 8385, 8567, 8750, 8932, 9116, 9298, 9481, 9665, 9848, 10030, 10213, 10395, 10578, 10761, 10945, 11126, 11309, 11493, 11676, 11858, 12042, 12224, 12407, 12591, 12773, 12955, 13138, 13321, 13504, 13686, 13870, 14052, 14236, 14418]]
    攻击次数2 = 1
    CD = 6
    TP成长 = 0.10
    TP上限 = 5


class 技能11(职业主动技能):
    名称 = '朱雀符'
    所在等级 = 25
    等级上限 = 60
    基础等级 = 41
    data0 = [int(i*1.211) for i in [0, 300, 331, 360, 391, 422, 453, 482, 513, 544, 575, 605, 635, 666, 697, 727, 757, 788, 819, 849, 879, 910, 941, 971, 1001, 1032, 1062, 1093, 1123, 1154,
                                  1184, 1215, 1245, 1276, 1306, 1338, 1368, 1397, 1427, 1457, 1488, 1518, 1549, 1581, 1611, 1642, 1672, 1703, 1733, 1764, 1794, 1825, 1855, 1886, 1916, 1947, 1977, 2008, 2038, 2069, 2099]]
    攻击次数 = 10
    CD = 6.5
    TP成长 = 0.10
    TP上限 = 5


class 技能12(职业主动技能):
    名称 = '星落打'
    所在等级 = 25
    等级上限 = 60
    基础等级 = 41
    data0 = [int(i*1.211) for i in [0, 4888, 5384, 5880, 6376, 6870, 7368, 7863, 8359, 8856, 9351, 9847, 10344, 10839, 11335, 11830, 12327, 12823, 13318, 13815, 14312, 14806, 15302, 15798, 16294, 16790, 17286, 17783, 18278, 18773, 19270, 19765, 20262, 20759, 21254,
                                  21750, 22244, 22741, 23237, 23733, 24230, 24725, 25221, 25718, 26212, 26709, 27204, 27701, 28197, 28692, 29189, 29685, 30180, 30676, 31172, 31668, 32164, 32660, 33156, 33653, 34147, 34644, 35139, 35635, 36132, 36627, 37124, 37620, 38115, 38611, 39106]]
    CD = 12
    TP成长 = 0.10
    TP上限 = 5


class 技能13(职业主动技能):
    名称 = '巨旋风'
    所在等级 = 30
    等级上限 = 60
    基础等级 = 38
    近身数据 = [int(i*1.224) for i in [0, 285, 314, 343, 372, 401, 430, 459, 488, 518, 547, 576, 605, 634, 663, 690, 720, 749, 778, 807, 836, 865, 894, 923, 952, 981, 1010, 1039, 1068, 1097, 1126, 1155, 1184, 1213, 1242, 1271,
                                 1300, 1329, 1356, 1385, 1414, 1443, 1472, 1501, 1530, 1559, 1588, 1617, 1646, 1675, 1704, 1735, 1764, 1793, 1822, 1851, 1880, 1908, 1937, 1966, 1995, 2023, 2052, 2081, 2110, 2139, 2168, 2197, 2226, 2255, 2284]]
    远程数据 = [int(i*1.224) for i in [0, 178, 197, 215, 232, 250, 269, 287, 304, 322, 340, 358, 377, 395, 413, 432, 449, 467, 485, 504, 521, 539, 557, 577, 595, 612, 630, 649, 667, 684, 702, 721, 739, 756, 775, 794,
                                 812, 830, 847, 866, 884, 901, 919, 938, 957, 975, 992, 1011, 1029, 1047, 1064, 1083, 1101, 1119, 1136, 1156, 1174, 1192, 1210, 1228, 1246, 1264, 1282, 1300, 1318, 1336, 1355, 1373, 1391, 1409, 1427]]
    近身倍率 = 2
    远程倍率 = 1
    攻击间隔 = 0.3
    持续时间 = 4
    CD = 8
    TP成长 = 0.10
    TP上限 = 5

    def 等效百分比(self, 武器类型):
        return (self.近身数据[self.等级] * self.近身倍率 + self.远程数据[self.等级] * floor(self.持续时间/self.攻击间隔) * self.远程倍率) * (1 + self.TP成长 * self.TP等级) * self.倍率


class 技能14(被动技能):
    名称 = '驱魔之书'
    所在等级 = 30
    等级上限 = 40
    基础等级 = 10
    关联技能 = ['真龙焚天', '式神封灵阵', '逆龙七杀', '逆鳞震', '灭魂符', '苍龙逐日', '式神：殇', '疾空旋风破', '落雷符',
            '狂乱锤击', '疾风打', '朱雀符', '黑暗切割', '升天阵', '落凤锤', '破魔符', '式神灭却·合', '雷鸣怒海·火啸山崩']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1 + 0.015 * self.等级, 5)


class 技能15(职业主动技能):
    名称 = '狂乱锤击'
    所在等级 = 35
    等级上限 = 60
    基础等级 = 36
    data0 = [int(i*1.212) for i in [0, 1038, 1143, 1249, 1354, 1459, 1564, 1670, 1775, 1880, 1985, 2090, 2196, 2301, 2406, 2511, 2617, 2723, 2828,
             2933, 3038, 3143, 3249, 3354, 3459, 3564, 3670, 3775, 3880, 3986, 4091, 4197, 4303, 4408, 4513, 4618, 4723, 4829,
             4934, 5039, 5144, 5250, 5355, 5460, 5565, 5670, 5776, 5881, 5986, 6093, 6198, 6303, 6409, 6514, 6619, 6724, 6830,
             6935, 7040, 7145, 7250, 7356, 7461, 7566, 7671, 7777, 7883, 7988, 8093, 8198, 8303]]
    攻击次数 = 4
    data1 = [int(i*1.212) for i in [0, 1223, 1347, 1471, 1596, 1718, 1843, 1967, 2091, 2216, 2340, 2463, 2587, 2711, 2836, 2960, 3084, 3208, 3332,
             3457, 3580, 3704, 3829, 3952, 4077, 4201, 4325, 4450, 4573, 4697, 4821, 4945, 5070, 5194, 5318, 5443, 5565, 5690,
             5814, 5938, 6063, 6187, 6310, 6434, 6558, 6683, 6807, 6931, 7055, 7178, 7303, 7427, 7551, 7676, 7799, 7923, 8048,
             8171, 8296, 8420, 8543, 8668, 8792, 8917, 9041, 9164, 9288, 9412, 9537, 9661, 9785]]
    攻击次数2 = 1
    data2 = [int(i*1.0) for i in [0, 897, 988, 1078, 1170, 1261, 1351, 1442, 1534, 1624, 1715, 1807, 1897, 1989, 2079, 2170, 2262, 2352, 2444, 2535,
             2625, 2716, 2808, 2898, 2990, 3081, 3171, 3263, 3353, 3445, 3536, 3626, 3718, 3809, 3899, 3990, 4082, 4173, 4263,
             4355, 4446, 4537, 4627, 4719, 4810, 4900, 4992, 5083, 5174, 5264, 5356, 5447, 5537, 5630, 5720, 5810, 5901, 5993,
             6083, 6175, 6266, 6357, 6448, 6538, 6630, 6721, 6811, 6903, 6994, 7084, 7176]]
    攻击次数3 = 1
    CD = 14
    TP成长 = 0.10
    TP上限 = 5


class 技能16(职业主动技能):
    名称 = '落雷符'
    所在等级 = 35
    等级上限 = 60
    基础等级 = 36
    data0 = [int(i*1.125) for i in [0, 1237, 1363, 1489, 1614, 1740, 1864, 1990, 2116, 2242, 2368, 2493, 2618, 2744, 2869, 2995, 3120, 3245, 3372,
             3497, 3623, 3749, 3873, 3999, 4124, 4251, 4377, 4502, 4628, 4753, 4879, 5003, 5131, 5256, 5381, 5507, 5632, 5758,
             5883, 6008, 6136, 6260, 6386, 6511, 6637, 6763, 6888, 7015, 7140, 7264, 7390, 7516, 7642, 7767, 7891, 8019, 8144,
             8270, 8395, 8520, 8646, 8771, 8897, 9023, 9148, 9275, 9399, 9525, 9650, 9776, 9902]]
    攻击次数 = 8
    CD = 1
    # 1级CD 20 60级CD 15.714
    CD_list = [0, 20.0, 19.927, 19.855, 19.782, 19.709, 19.637, 19.564, 19.491, 19.419, 19.346, 19.274, 19.201, 19.128, 19.056, 18.983, 18.91, 18.838, 18.765, 18.692, 18.62, 18.547, 18.474, 18.402, 18.329, 18.257, 18.184, 18.111, 18.039, 17.966,
               17.893, 17.821, 17.748, 17.675, 17.603, 17.53, 17.457, 17.385, 17.312, 17.24, 17.167, 17.094, 17.022, 16.949, 16.876, 16.804, 16.731, 16.658, 16.586, 16.513, 16.44, 16.368, 16.295, 16.223, 16.15, 16.077, 16.005, 15.932, 15.859, 15.787, 15.714]
    TP成长 = 0.10
    TP上限 = 5

    def 等效CD(self, 武器类型, 输出类型):
        return round(self.CD_list[self.等级] * self.CD / self.恢复, 1)

    是否有护石 = 1
    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.1
            self.CD *= 0.85
        elif x == 1:
            self.倍率 *= 1.19
            self.CD *= 0.85


class 技能17(职业主动技能):
    名称 = '疾空旋风破'
    所在等级 = 40
    等级上限 = 60
    基础等级 = 33
    data0 = [int(i*1.225) for i in [0, 848, 935, 1020, 1106, 1193, 1278, 1364, 1451, 1536, 1622, 1710, 1794, 1881, 1967, 2055, 2141, 2225, 2312, 2398, 2484, 2571, 2656, 2741, 2829, 2914, 3001, 3086, 3172, 3259, 3346, 3431, 3516, 3604, 3690,
             3776, 3862, 3947, 4034, 4119, 4206, 4292, 4377, 4464, 4550, 4636, 4722, 4810, 4894, 4980, 5068, 5154, 5240, 5325, 5411, 5499, 5584, 5670, 5755, 5841, 5928, 6015, 6100, 6185, 6273, 6358, 6446, 6531, 6615, 6704, 6789]]
    data1 = [int(i*1.225) for i in [0, 1774, 1953, 2134, 2314, 2493, 2673, 2854, 3034, 3213, 3394, 3574, 3753, 3935, 4115, 4293, 4475, 4655, 4835, 5015, 5195, 5375, 5555, 5735, 5915, 6094, 6275, 6455, 6634, 6815, 6995, 7174, 7355, 7535, 7715, 7895, 8075,
             8255, 8435, 8615, 8795, 8975, 9155, 9335, 9514, 9695, 9875, 10054, 10235, 10415, 10595, 10775, 10955, 11135, 11315, 11495, 11675, 11855, 12035, 12215, 12397, 12575, 12755, 12936, 13116, 13295, 13475, 13657, 13835, 14015, 14197]]
    攻击次数 = 7
    攻击次数2 = 1
    CD = 20
    TP成长 = 0.10
    TP上限 = 5

    def 等效百分比(self, 武器类型):
        return (self.data0[self.等级] * self.攻击次数 + self.data1[self.等级] * self.攻击次数2) * (1 + self.TP成长 * self.TP等级) * self.倍率

    是否有护石 = 1
    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.攻击次数 += 1
            self.倍率 *= 1.08
            self.CD *= 0.85
        elif x == 1:
            self.攻击次数 += 1
            self.倍率 *= 1.17
            self.CD *= 0.85


class 技能18(职业主动技能):
    名称 = '式神：殇'
    所在等级 = 45
    等级上限 = 60
    基础等级 = 31
    data0 = [int(i*1.24) for i in [0, 933, 1028, 1123, 1217, 1311, 1407, 1500, 1596, 1690, 1785, 1881, 1974, 2070, 2164, 2258, 2354, 2448, 2543, 2637,
             2732, 2828, 2921, 3017, 3110, 3206, 3302, 3395, 3490, 3584, 3679, 3775, 3869, 3964, 4057, 4153, 4249, 4342, 4437,
             4531, 4627, 4723, 4816, 4911, 5005, 5100, 5195, 5290, 5385, 5478, 5574, 5668, 5763, 5857, 5952, 6048, 6141, 6237,
             6331, 6426, 6520, 6615, 6710, 6805, 6899, 6994, 7089, 7184, 7278, 7373, 7468]]
    攻击次数 = 14
    data1 = [int(i*1.24) for i in [0, 4130, 4549, 4969, 5387, 5807, 6225, 6645, 7063, 7483, 7901, 8322, 8740, 9159, 9577, 9997, 10416, 10836, 11254,
             11674, 12092, 12511, 12930, 13350, 13769, 14188, 14606, 15026, 15444, 15864, 16283, 16703, 17121, 17540, 17958,
             18379, 18797, 19217, 19635, 20055, 20473, 20893, 21311, 21731, 22150, 22569, 22987, 23408, 23826, 24245, 24663,
             25083, 25502, 25922, 26340, 26760, 27178, 27597, 28016, 28437, 28855, 29274, 29692, 30112, 30530, 30950, 31369,
             31789, 32207, 32626, 33044]]
    攻击次数2 = 1
    CD = 45
    TP成长 = 0.10
    TP上限 = 5

    是否有护石 = 1
    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.攻击次数 = 0
            self.攻击次数2 = 4.79
            self.CD *= 0.95
        elif x == 1:
            self.攻击次数 = 0
            self.攻击次数2 = 5.16
            self.CD *= 0.95


class 技能19(职业主动技能):
    名称 = '无双击'
    所在等级 = 45
    等级上限 = 60
    基础等级 = 31
    data0 = [int(i*1.161) for i in [0, 791, 870, 950, 1031, 1110, 1190, 1272, 1352, 1432, 1512, 1592, 1673, 1753, 1833, 1913, 1994, 2074, 2154, 2234,
             2314, 2396, 2475, 2555, 2636, 2715, 2795, 2877, 2956, 3036, 3117, 3196, 3277, 3358, 3437, 3517, 3599, 3679, 3758,
             3839, 3919, 3998, 4080, 4160, 4239, 4320, 4400, 4479, 4561, 4641, 4720, 4801, 4882, 4962, 5042, 5122, 5202, 5283,
             5363, 5443, 5523, 5603, 5683, 5764, 5844, 5924, 6004, 6084, 6165, 6246, 6325]]
    data1 = [int(i*1.161) for i in [0, 10505, 11571, 12636, 13703, 14768, 15835, 16900, 17965, 19031, 20096, 21163, 22228, 23295, 24360, 25427, 26492,
             27558, 28623, 29689, 30755, 31820, 32887, 33952, 35018, 36083, 37151, 38216, 39282, 40347, 41413, 42478, 43545,
             44611, 45677, 46742, 47807, 48874, 49939, 51005, 52070, 53137, 54202, 55269, 56334, 57400, 58465, 59533, 60598,
             61663, 62729, 63794, 64860, 65925, 66993, 68058, 69124, 70189, 71256, 72321, 73388, 74453, 75519, 76584, 77649,
             78716, 79781, 80847, 81913, 82979, 84045]]
    攻击次数2 = 1
    CD = 40
    TP成长 = 0.10
    TP上限 = 5


class 技能20(被动技能):
    名称 = '斗志散发'
    所在等级 = 48
    等级上限 = 40
    基础等级 = 20

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.07 + 0.01 * self.等级, 5)


class 技能21(职业主动技能):
    名称 = '苍龙逐日'
    所在等级 = 50
    等级上限 = 40
    基础等级 = 12
    data0 = [int(i*1.224) for i in [0, 43236, 53262, 63288, 73315, 83343, 93367, 103393, 113419, 123446, 133473, 143499, 153523, 163550, 173576, 183603, 193628, 203654, 213680, 223706, 233731, 243758, 253784, 263810, 273836, 283861, 293890, 303915, 313942, 323967, 333993, 344018, 354045, 364072, 374098, 384122,
             394148, 404175, 414202, 424228, 434252, 444278, 454305, 464332, 474359, 484385, 494409, 504436, 514463, 524489, 534515, 544540, 554566, 564593, 574619, 584645, 594670, 604696, 614722, 624749, 634775, 644802, 654827, 664852, 674880, 684906, 694933, 704958, 714985, 725009, 735036]]
    CD = 145

    def 等效百分比(self, 武器类型):
        if self.等级 >= 9:
            self.倍率 *= 1.1
        return super().等效百分比(武器类型)


class 技能22(职业主动技能):
    名称 = '灭魂符'
    所在等级 = 60
    等级上限 = 40
    基础等级 = 23
    data0 = [int(i*1.224) for i in [0, 1596, 1759, 1921, 2082, 2245, 2407, 2570, 2730, 2893, 3055, 3218, 3379, 3542, 3703, 3867, 4028, 4190, 4350, 4516,
             4676, 4837, 5000, 5161, 5324, 5486, 5648, 5809, 5971, 6134, 6296, 6458, 6620, 6782, 6945, 7107, 7269, 7430, 7593, 7755, 7917]]
    攻击次数 = 10
    CD = 30
    TP成长 = 0.10
    TP上限 = 5

    是否有护石 = 1
    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.26
            self.CD *= 0.9
        elif x == 1:
            self.倍率 *= 1.35
            self.CD *= 0.9


class 技能23(职业主动技能):
    名称 = '逆鳞震'
    所在等级 = 70
    等级上限 = 40
    基础等级 = 18
    data0 = [int(i*1.224) for i in [0, 25800, 28416, 31037, 33649, 36270, 38887, 41507, 44128, 46741, 49363, 51980, 54597, 57211, 59832, 62448, 65069, 67682, 70302, 72923, 75537, 78156, 80772, 83393, 86007, 88627, 91244, 93864, 96484, 99096, 101718, 104336, 106954, 109569, 112188, 114805, 117421,
             120040, 122662, 125280, 127893, 130513, 133130, 135749, 138364, 140985, 143599, 146221, 148834, 151455, 154074, 156691, 159308, 161924, 164545, 167159, 169779, 172396, 175016, 177631, 180250, 182873, 185486, 188105, 190720, 193342, 195957, 198578, 201192, 203810, 206428]]
    CD = 50
    TP成长 = 0.10
    TP上限 = 5

    是否有护石 = 1
    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.2
        elif x == 1:
            self.倍率 *= 1.28


class 技能24(被动技能):
    名称 = '脉轮：式神'
    所在等级 = 75
    等级上限 = 11
    基础等级 = 1

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.34 + 0.02 * self.等级, 5)


class 技能25(被动技能):
    名称 = '式神之力'
    所在等级 = 75
    等级上限 = 40
    基础等级 = 11

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.08 + 0.02 * self.等级, 5)

    def 物理攻击力倍率进图(self, 武器类型):
        return self.加成倍率(武器类型)

    def 魔法攻击力倍率进图(self, 武器类型):
        return self.加成倍率(武器类型)


class 技能26(职业主动技能):
    名称 = '逆龙七杀'
    所在等级 = 75
    等级上限 = 40
    基础等级 = 16
    data0 = [int(i*1.159) for i in [0, 1267, 1397, 1525, 1655, 1783, 1912, 2040, 2169, 2297, 2426, 2555, 2684, 2813, 2941, 3069, 3198, 3327, 3455, 3585, 3714, 3843, 3971, 4099, 4228, 4356, 4485, 4614, 4743, 4871, 5001, 5128, 5257, 5387, 5515,
             5643, 5773, 5901, 6030, 6158, 6286, 6416, 6544, 6673, 6802, 6931, 7059, 7188, 7316, 7446, 7574, 7703, 7832, 7961, 8088, 8218, 8346, 8474, 8604, 8732, 8862, 8990, 9118, 9247, 9377, 9504, 9634, 9762, 9892, 10020, 10147]]
    data1 = [int(i*1.159) for i in [0, 2538, 2793, 3050, 3309, 3567, 3823, 4080, 4339, 4596, 4853, 5110, 5369, 5625, 5883, 6140, 6399, 6655, 6912, 7169, 7428, 7684, 7941, 8198, 8457, 8714, 8971, 9228, 9487, 9744, 10001, 10259, 10517, 10774, 11029, 11288, 11546,
             11803, 12059, 12317, 12576, 12833, 13089, 13347, 13605, 13863, 14119, 14377, 14635, 14891, 15148, 15406, 15664, 15921, 16178, 16436, 16694, 16950, 17208, 17465, 17723, 17980, 18239, 18494, 18752, 19009, 19268, 19524, 19782, 20039, 20297]]
    攻击次数2 = 1
    data2 = [int(i*1.159) for i in [0, 3804, 4191, 4577, 4963, 5349, 5735, 6122, 6508, 6893, 7281, 7666, 8052, 8439, 8823, 9211, 9596, 9981, 10370, 10755, 11142, 11527, 11912, 12300, 12685, 13070, 13458, 13842, 14230, 14615, 15000, 15389, 15774, 16160, 16546, 16932,
             17319, 17704, 18090, 18477, 18862, 19250, 19635, 20021, 20408, 20793, 21179, 21565, 21951, 22338, 22724, 23109, 23496, 23881, 24267, 24655, 25040, 25427, 25812, 26198, 26585, 26970, 27356, 27743, 28128, 28516, 28901, 29287, 29674, 30059, 30446]]
    攻击次数3 = 1
    data3 = [int(i*1.159) for i in [0, 5073, 5589, 6103, 6618, 7133, 7648, 8162, 8677, 9192, 9707, 10222, 10737, 11252, 11766, 12281, 12795, 13311, 13825, 14340, 14855, 15369, 15884, 16398, 16914, 17428, 17945, 18458, 18974, 19488, 20003, 20517, 21032, 21547, 22062, 22577,
             23092, 23605, 24121, 24635, 25151, 25665, 26181, 26694, 27211, 27723, 28240, 28753, 29269, 29783, 30299, 30813, 31329, 31842, 32358, 32871, 33387, 33901, 34417, 34931, 35446, 35960, 36476, 36990, 37506, 38021, 38535, 39050, 39564, 40079, 40594]]
    攻击次数4 = 1
    data4 = [int(i*1.159) for i in [0, 6343, 6986, 7629, 8273, 8916, 9559, 10204, 10847, 11490, 12134, 12777, 13421, 14065, 14707, 15351, 15995, 16638, 17280, 17925, 18568, 19212, 19856, 20499, 21142, 21786, 22429, 23073, 23717, 24359, 25003, 25647, 26290, 26934, 27576, 28221,
             28865, 29508, 30152, 30795, 31438, 32082, 32724, 33369, 34013, 34654, 35299, 35943, 36585, 37230, 37872, 38516, 39161, 39803, 40447, 41092, 41733, 42377, 43021, 43664, 44308, 44951, 45594, 46239, 46883, 47525, 48168, 48812, 49456, 50099, 50742]]
    攻击次数5 = 1
    data5 = [int(i*1.159) for i in [0, 7610, 8382, 9155, 9928, 10700, 11471, 12244, 13017, 13788, 14560, 15333, 16105, 16876, 17648, 18421, 19194, 19966, 20738, 21509, 22283, 23055, 23827, 24599, 25371, 26142, 26915, 27689, 28460, 29231, 30004, 30776, 31549, 32321, 33093, 33865,
             34637, 35409, 36180, 36954, 37727, 38498, 39270, 40043, 40815, 41587, 42359, 43131, 43904, 44675, 45447, 46220, 46993, 47765, 48535, 49308, 50082, 50854, 51625, 52397, 53169, 53942, 54713, 55486, 56258, 57031, 57803, 58574, 59348, 60120, 60891]]
    攻击次数6 = 1
    data6 = [int(i*1.159) for i in [0, 26650, 29354, 32058, 34760, 37465, 40169, 42873, 45576, 48281, 50983, 53687, 56390, 59095, 61799, 64503, 67205, 69910, 72613, 75317, 78020, 80725, 83428, 86132, 88835, 91540, 94244, 96945, 99649, 102353, 105058, 107762, 110465, 113168, 115873, 118577, 121279,123983, 126688, 129390, 132094, 134798, 137503, 140207, 142910, 145612, 148317, 151020, 153724, 156428, 159133, 161835, 164539, 167242, 169947, 172650, 175354, 178057, 180762, 183465, 186169, 188873, 191575, 194279, 196983, 199687, 202391, 205095, 207798, 210502, 213206]]
    攻击次数7 = 1

    CD = 50

    是否有护石 = 1
    护石选项 = ['圣痕']

    def 装备护石(self, x):
        self.倍率 *= 1.04*1.24


class 技能27(职业主动技能):
    名称 = '式神封灵阵'
    所在等级 = 80
    等级上限 = 40
    基础等级 = 13
    data0 = [int(i*1.25) for i in [0, 2579, 2836, 3099, 3363, 3622, 3885, 4147, 4406, 4669, 4930, 5192, 5455, 5716, 5975, 6237, 6500, 6761, 7022, 7284, 7545, 7808, 8069, 8333, 8590, 8853, 9117, 9376, 9639, 9900, 10162, 10423, 10684, 10945, 11207, 11470, 11729,11990, 12254, 12513, 12776, 13037, 13299, 13562, 13823, 14085, 14344, 14609, 14870, 15127, 15391, 15654, 15915, 16177, 16438, 16699, 16960, 17224, 17483, 17746, 18007, 18267, 18530, 18791, 19050, 19314, 19575, 19838, 20100, 20363, 20624]]
    data1 = [int(i*1.25) for i in [0, 25780, 28394, 31009, 33626, 36240, 38854, 41470, 44085, 46701, 49316, 51931, 54547, 57162, 59777, 62393, 65008, 67623, 70238, 72853, 75470, 78085, 80699, 83315, 85930, 88546, 91161, 93776, 96393, 99007, 101621, 104238, 106852, 109468, 112081, 114697, 117313,119929, 122543, 125159, 127775, 130390, 133004, 135620, 138236, 140852, 143466, 146081, 148697, 151313, 153927, 156543, 159159, 161774, 164388, 167004, 169620, 172235, 174848, 177464, 180080, 182695, 185310, 187926, 190540, 193157, 195771, 198387, 201003, 203618, 206234]]
    攻击次数 = 10
    攻击次数2 = 1
    CD = 50

    是否有护石 = 1
    护石选项 = ['圣痕']

    def 装备护石(self, x):
        self.倍率 *= 1.36
        self.CD *= 0.9


class 技能28(职业主动技能):
    名称 = '真龙焚天'
    所在等级 = 85
    等级上限 = 40
    基础等级 = 5
    data0 = [int(i*1.224) for i in [0, 2166, 2670, 3172, 3675, 4177, 4680, 5182, 5686, 6188, 6690, 7193, 7694, 8197, 8701, 9203, 9705, 10208, 10711, 11213, 11716, 12219, 12721, 13224, 13726, 14228, 14732, 15234, 15736, 16238, 16740, 17243, 17748, 18250, 18752, 19254,
             19757, 20260, 20763, 21265, 21767, 22269, 22772, 23274, 23777, 24279, 24783, 25285, 25787, 26289, 26793, 27297, 27799, 28301, 28803, 29306, 29810, 30311, 30813, 31315, 31818, 32321, 32824, 33327, 33829, 34332, 34835, 35337, 35840, 36342, 36845]]
    data1 = [int(i*1.224) for i in [0, 30652, 37760, 44868, 51976, 59084, 66191, 73299, 80408, 87514, 94623, 101730, 108839, 115945, 123055, 130161, 137270, 144378, 151486, 158593, 165701, 172809, 179918, 187024, 194133, 201240, 208348, 215456, 222564, 229671, 236779, 243888, 250995, 258103, 265211, 272319, 279427, 286535, 293643, 300749, 307858, 314965, 322074, 329180, 336290, 343397, 350505, 357612, 364721, 371828, 378937, 386044, 393153, 400259, 407369, 414475, 421583, 428691, 435799, 442906, 450014, 457123, 464230, 471338, 478446, 485554, 492662, 499769, 506878, 513984, 521093]]
    data2 = [int(i*1.261) for i in [0, 122708, 151164, 179618, 208073, 236527, 264982, 293436, 321890, 350345, 378800, 407254, 435710, 464163, 492619, 521072, 549528, 577981, 606435, 634889, 663345, 691799, 720254, 748708, 777163, 805617, 834070, 862526, 890980, 919435, 947891, 976345, 1004800, 1033253, 1061709, 1090162, 1118615, 1147070, 1175525, 1203981, 1232434, 1260889, 1289343, 1317798, 1346252, 1374707, 1403160, 1431616, 1460071, 1488526, 1516980, 1545434, 1573889, 1602343, 1630796, 1659251, 1687706, 1716162, 1744615, 1773071, 1801524, 1829979, 1858433, 1886888, 1915342, 1943797, 1972252, 2000707, 2029161, 2057616, 2086070]]
    攻击次数 = 30
    攻击次数2 = 1
    攻击次数3 = 0
    CD = 180.0


class 技能29(被动技能):
    名称 = '式神之悟'
    所在等级 = 95
    等级上限 = 40
    基础等级 = 4
    非关联技能 = ['空斩打']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.18 + 0.02 * self.等级, 5)


class 技能30(职业主动技能):
    名称 = '式神灭却·合'
    所在等级 = 95
    等级上限 = 40
    基础等级 = 6

    def 力驱形态(self):
        self.data0 = [int(i*1.223) for i in [0, 19069, 21003, 22938, 24873, 26807, 28742, 30676, 32611, 34546, 36480, 38415, 40349, 42284, 44218, 46153, 48088, 50022, 51957, 53891, 55826, 57761, 59695, 61629, 63564, 65499, 67433, 69367, 71302, 73237, 75171, 77106, 79040, 80975, 82910, 84844, 86779, 88714, 90648, 92582, 94517, 96452, 98386, 100321, 102255, 104190, 106125, 108059, 109993, 111928, 113863, 115797, 117732, 119666, 121601, 123535, 125470, 127405, 129339, 131274, 133208, 135143, 137078, 139012, 140946, 142881, 144816, 146750, 148685, 150619, 152554]]
        self.攻击次数 = 1
        self.data1 = [int(i*1.223) for i in [0, 9534, 10502, 11469, 12436, 13404, 14371, 15338, 16305, 17273, 18240, 19207, 20175, 21142, 22109, 23077, 24044, 25011, 25978, 26946, 27913, 28880, 29847, 30815, 31782, 32749, 33717, 34684, 35651, 36618, 37586, 38553, 39520, 40487, 41455,
                      42422, 43389, 44357, 45324, 46291, 47259, 48226, 49193, 50160, 51128, 52095, 53062, 54030, 54997, 55964, 56931, 57899, 58866, 59833, 60800, 61768, 62735, 63702, 64669, 65637, 66604, 67571, 68539, 69506, 70473, 71441, 72408, 73375, 74343, 75310, 76277]]
        self.攻击次数2 = 1
        self.data2 = [int(i*1.223) for i in [0, 28603, 31505, 34407, 37309, 40211, 43112, 46014, 48916, 51818, 54720, 57622, 60524, 63426, 66328, 69230, 72132, 75033, 77935, 80837, 83739, 86641, 89542, 92444, 95346, 98248, 101150, 104051, 106953, 109855, 112757, 115659, 118560, 121462, 124364, 127266, 130168, 133070, 135972, 138874, 141776, 144678, 147580, 150481, 153383, 156285, 159187, 162089, 164990, 167892, 170794, 173696, 176598, 179499, 182401, 185303, 188205, 191107, 194008, 196910, 199812, 202714, 205616, 208518, 211420, 214322, 217224, 220126, 223028, 225929, 228831]]
        self.攻击次数3 = 1
        self.data3 = [int(i*1.223) for i in [0, 9534, 10502, 11469, 12436, 13404, 14371, 15338, 16305, 17273, 18240, 19207, 20175, 21142, 22109, 23077, 24044, 25011, 25978, 26946, 27913, 28880, 29847, 30815, 31782, 32749, 33717, 34684, 35651, 36618, 37586, 38553, 39520, 40487, 41455,
                      42422, 43389, 44357, 45324, 46291, 47259, 48226, 49193, 50160, 51128, 52095, 53062, 54030, 54997, 55964, 56931, 57899, 58866, 59833, 60800, 61768, 62735, 63702, 64669, 65637, 66604, 67571, 68539, 69506, 70473, 71441, 72408, 73375, 74343, 75310, 76277]]
        self.攻击次数4 = 4

    def 法驱形态(self):
        self.data0 = [int(i*1.224) for i in [0, 4304, 4741, 5178, 5614, 6051, 6488, 6924, 7361, 7798, 8234, 8671, 9108, 9544, 9981, 10418, 10854, 11291, 11728, 12164, 12601, 13038, 13474, 13911, 14348, 14784, 15221, 15658, 16095, 16531, 16968, 17404, 17841, 18278, 18714, 19151,
                      19588, 20024, 20461, 20898, 21335, 21771, 22208, 22645, 23081, 23518, 23955, 24391, 24828, 25265, 25701, 26138, 26575, 27011, 27448, 27885, 28321, 28758, 29195, 29631, 30068, 30505, 30941, 31378, 31815, 32251, 32688, 33125, 33561, 33998, 34435]]
        self.攻击次数 = 15
        self.data1 = [int(i*1.224) for i in [0, 27670, 30477, 33285, 36092, 38899, 41706, 44514, 47321, 50128, 52935, 55742, 58550, 61356, 64164, 66971, 69778, 72585, 75392, 78200, 81007, 83814, 86621, 89429, 92236, 95043, 97850, 100657, 103465, 106271, 109079, 111886, 114693, 117500, 120307, 123115, 125922, 128729, 131536, 134344, 137151, 139958, 142765, 145572, 148379, 151186, 153994, 156801, 159608, 162415, 165222, 168030, 170836, 173644, 176451, 179258, 182065, 184872, 187680, 190487, 193294, 196101, 198909, 201716, 204523, 207330, 210137, 212945, 215751, 218559, 221366]]
        self.攻击次数2 = 1
        self.攻击次数3 = 0
        self.攻击次数4 = 0

    脉轮 = '烈焰'
    CD = 60

    def 等效百分比(self, 武器类型):
        if self.脉轮 == '圣光':
            self.法驱形态()
        else:
            self.力驱形态()
        return super().等效百分比(武器类型)


class 技能31(职业主动技能):
    名称 = '雷鸣怒海·火啸山崩'
    所在等级 = 100
    等级上限 = 40
    基础等级 = 2
    基础 = 250972
    成长 = 75764
    攻击次数 = 1
    data0 = [int(x*1.224) for x in [0, 16337, 20125, 23913, 27701, 31490, 35278, 39066, 42854, 46643, 50431, 54219, 58007, 61796, 65584, 69372, 73160, 76949, 80737, 84525, 88313, 92101, 95890, 99678, 103466, 107254, 111043, 114831, 118619, 122407, 126196, 129984, 133772, 137560, 141349, 145137, 148925, 152713, 156502, 160290, 164078, 167866, 171655, 175443, 179231, 183019, 186807, 190596, 194384, 198172, 201960, 205749, 209537, 213325, 217113, 220902, 224690, 228478, 232266, 236055, 239843, 243631, 247419, 251208, 254996, 258784, 262572, 266361, 270149, 273937, 277725]]
    攻击次数 = 5
    data1 = [int(x*1.224) for x in [0, 9802, 12075, 14348, 16621, 18894, 21167, 23440, 25713, 27986, 30259, 32531, 34804, 37077, 39350, 41623, 43896, 46169, 48442, 50715, 52988, 55261, 57534, 59807, 62080, 64353, 66626, 68899, 71172, 73444, 75717, 77990, 80263, 82536, 84809, 87082, 89355, 91628, 93901, 96174, 98447, 100720, 102993, 105266, 107539, 109812, 112084, 114357, 116630, 118903, 121176, 123449, 125722, 127995, 130268, 132541, 134814, 137087, 139360, 141633, 143906, 146179, 148452, 150725, 152997, 155270, 157543, 159816, 162089, 164362, 166635]]
    攻击次数2 = 10
    data2 = [int(x*1.224) for x in [0, 16337, 20125, 23913, 27701, 31490, 35278, 39066, 42854, 46643, 50431, 54219, 58007, 61796, 65584, 69372, 73160, 76949, 80737, 84525, 88313, 92101, 95890, 99678, 103466, 107254, 111043, 114831, 118619, 122407, 126196, 129984, 133772, 137560, 141349, 145137, 148925, 152713, 156502, 160290, 164078, 167866, 171655, 175443, 179231, 183019, 186807, 190596, 194384, 198172, 201960, 205749, 209537, 213325, 217113, 220902, 224690, 228478, 232266, 236055, 239843, 243631, 247419, 251208, 254996, 258784, 262572, 266361, 270149, 273937, 277725]]
    攻击次数3 = 1
    data3 = [int(x*1.224) for x in [0, 130694, 161000, 191306, 221612, 251918, 282223, 312529, 342835, 373141, 403447, 433753, 464058, 494364, 524670, 554976, 585282, 615588, 645894, 676200, 706506, 736812, 767118, 797424, 827730, 858036, 888342, 918648, 948954, 979260, 1009566, 1039872, 1070177, 1100482, 1130788, 1161094, 1191400, 1221706, 1252012, 1282318, 1312624, 1342930, 1373236, 1403542, 1433848, 1464154, 1494460, 1524766, 1555072, 1585378, 1615684, 1645990, 1676296, 1706601, 1736907, 1767213, 1797518, 1827824, 1858130, 1888436, 1918742, 1949048, 1979354, 2009660, 2039966, 2070272, 2100578, 2130884, 2161190, 2191496, 2221802]]
    攻击次数4 = 1
    CD = 290
    关联技能 = ['无']

    def 加成倍率(self, 武器类型):
        return 0.0


技能列表 = []
i = 0
while i >= 0:
    try:
        exec('技能列表.append(技能' + str(i) + '())')
        i += 1
    except:
        i = -1

技能序号 = dict()
for i in range(len(技能列表)):
    技能序号[技能列表[i].名称] = i

神启·驱魔师一觉序号 = 0
神启·驱魔师二觉序号 = 0
神启·驱魔师三觉序号 = 0
for i in 技能列表:
    if i.所在等级 == 50:
        神启·驱魔师一觉序号 = 技能序号[i.名称]
    if i.所在等级 == 85:
        神启·驱魔师二觉序号 = 技能序号[i.名称]
    if i.所在等级 == 100:
        神启·驱魔师三觉序号 = 技能序号[i.名称]

神启·驱魔师护石选项 = ['无']
for i in 技能列表:
    if i.是否有伤害 == 1 and i.是否有护石 == 1:
        神启·驱魔师护石选项.append(i.名称)

神启·驱魔师符文选项 = ['无']
for i in 技能列表:
    if i.所在等级 >= 20 and i.所在等级 <= 80 and i.所在等级 != 50 and i.是否有伤害 == 1:
        神启·驱魔师符文选项.append(i.名称)


class 神启·驱魔师角色属性(角色属性):
    实际名称 = '神启·驱魔师'
    角色 = '圣职者(男)'
    职业 = '驱魔师'

    武器选项 = ['念珠', '战斧']

    主BUFF = 1.76

    防具类型 = '板甲'

    反身空斩打 = 0
    力法及精通 = 0

    远古记忆 = 0

    def __init__(self):
        基础属性输入(self)
        self.技能栏 = deepcopy(技能列表)
        self.技能序号 = deepcopy(技能序号)

    def 被动倍率计算(self):
        super().被动倍率计算()
        self.技能栏[self.技能序号['空斩打']
                 ].倍率 *= (1 + 0.1 * self.技能栏[self.技能序号['普通攻击']].TP等级)
        潜龙 = self.技能栏[self.技能序号['潜龙']]
        if self.技能栏[self.技能序号['潜龙']].等级 != 0:
            self.技能栏[self.技能序号['普通攻击']].基础 += 潜龙.普通攻击冲击波[潜龙.等级]
            self.技能栏[self.技能序号['普通攻击']].基础2 *= 1 + (潜龙.普通攻击[潜龙.等级] / 100)
            self.技能栏[self.技能序号['巨旋风']].近身倍率 *= 1 + (潜龙.巨旋风近身[潜龙.等级] / 100)
            self.技能栏[self.技能序号['巨旋风']].远程倍率 *= 1 + (潜龙.巨旋风远程[潜龙.等级] / 100)
            self.技能栏[self.技能序号['巨旋风']].持续时间 += 潜龙.巨旋风时间[潜龙.等级] / 1000
            self.技能栏[self.技能序号['疾空旋风破']].攻击次数 += 2
        if self.反身空斩打 == 1:
            self.技能栏[self.技能序号['空斩打']].被动倍率 *= 1 + 2 * (潜龙.空斩打剑气[潜龙.等级] / 100)
        else:
            self.技能栏[self.技能序号['空斩打']].被动倍率 *= 1 + (潜龙.空斩打剑气[潜龙.等级] / 100)
        if self.力法及精通 == 0 or self.力法及精通 == 1:
            self.技能栏[self.技能序号['真龙焚天']].攻击次数 = 0
            self.技能栏[self.技能序号['真龙焚天']].攻击次数2 = 0
            self.技能栏[self.技能序号['真龙焚天']].攻击次数3 = 1
            self.技能栏[self.技能序号['无双击']].倍率 *= 1.2
        if self.力法及精通 == 0 or self.力法及精通 == 1:
            self.技能栏[self.技能序号['式神灭却·合']].脉轮 = '烈焰'
        else:
            self.技能栏[self.技能序号['式神灭却·合']].脉轮 = '圣光'


class 神启·驱魔师(角色窗口):
    def 窗口属性输入(self):
        self.初始属性 = 神启·驱魔师角色属性()
        self.角色属性A = 神启·驱魔师角色属性()
        self.角色属性B = 神启·驱魔师角色属性()
        self.一觉序号 = 神启·驱魔师一觉序号
        self.二觉序号 = 神启·驱魔师二觉序号
        self.三觉序号 = 神启·驱魔师三觉序号
        self.护石选项 = deepcopy(神启·驱魔师护石选项)
        self.符文选项 = deepcopy(神启·驱魔师符文选项)

    def 界面(self):
        super().界面()

        self.力法及精通选择 = MyQComboBox(self.main_frame2)
        self.力法及精通选择.addItem('板甲力驱')
        self.力法及精通选择.addItem('重甲力驱')
        self.力法及精通选择.addItem('布甲法驱')
        self.力法及精通选择.resize(120, 20)
        self.力法及精通选择.move(325, 480)

        self.反身空斩打 = QCheckBox('空斩打冲击波', self.main_frame2)
        self.反身空斩打.resize(100, 20)
        self.反身空斩打.move(335, 520)
        self.反身空斩打.setStyleSheet(复选框样式)
        self.反身空斩打.setToolTip('触发潜龙冲击波')

        self.职业存档.append(('力法及精通选择', self.力法及精通选择, 1))
        self.职业存档.append(('反身空斩打', self.反身空斩打, 0))

    def 输入属性(self, 属性, x=0):
        super().输入属性(属性, x)
        if self.反身空斩打.isChecked():
            属性.反身空斩打 = 1
        属性.力法及精通 = self.力法及精通选择.currentIndex()
        if 属性.力法及精通 == 0:
            属性.防具类型 = '板甲'
            属性.类型 = '物理百分比'
            属性.防具精通属性 = '力量'
        if 属性.力法及精通 == 1:
            属性.防具类型 = '重甲'
            属性.类型 = '物理百分比'
            属性.防具精通属性 = '力量'
        if 属性.力法及精通 == 2:
            属性.防具类型 = '布甲'
            属性.类型 = '魔法百分比'
            属性.防具精通属性 = '智力'
